<?php
use think\Env;

/**
 * AI服务配置文件
 */


return [
    // 默认AI服务提供商 (openai, qianwen, doubao,stable_diffusion)
    'default_provider' => 'stable_diffusion', // 默认AI服务提供商 默认stable_diffusion qianwen
    'default_text_provider' => 'qianwen',

    // Stable Diffusion配置
    'stable_diffusion' => [
        'api_key' => Env::get('ai.AI_STABLE_DIFFUSION_KEY') ?: '',
        'api_url' => 'http://192.168.196.244:7861/sdapi/v1/txt2img',
        'model' => 'stable-diffusion-xl-base-1.0',
        'supported_sizes' => ['512x512', '768x768', '1024x1024', '1280x720', '720x1280'],
        'max_size' => '1280x720'
    ],

    // Stable Diffusion配置
    'stable_diffusion2' => [
        'api_key' => Env::get('ai.AI_STABLE_DIFFUSION_KEY') ?: '',
        'api_url' => 'http://'.Env::get('ai.STABLE_DIFFUSION_IP').':7861/sdapi/v1/txt2img',
        'model' => 'stable-diffusion-xl-base-1.0',
        'supported_sizes' => ['512x512', '768x768', '1024x1024', '1280x720', '720x1280'],
        'max_size' => '1280x720'
    ],
    
    // 阿里千问AI配置
    'qianwen' => [
        'api_key' => Env::get('ai.AI_QIANWEN_KEY') ?: 'sk-59c3d578ae0e411bab5447cd85254961', // 阿里千问 API密钥
        'api_url' => 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis',
        'sync_api_url' => 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis',
        'text_api_url' => 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation',
        'model' => 'wanx-v1', // 千问图像生成模型
        'text_model' => 'qwen-turbo', // 千问文本生成模型
        'supported_sizes' => ['512*512', '720*1280', '1280*720', '1280*720'],
        'max_size' => '1280*720',
        'sync_mode' => true // 使用同步模式
    ],

    // 豆包AI配置
    'doubao' => [
        'api_key' => Env::get('ai.AI_DOUBAO_KEY') ?: '', // 豆包 API密钥
        'api_url' => 'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
        'image_api_url' => 'https://ark.cn-beijing.volces.com/api/v3/images/generations',
        'model' => 'doubao-lite-4k', // 豆包文本生成模型
        'image_model' => 'doubao-image-v1', // 豆包图像生成模型
        'supported_sizes' => ['1024*1024', '1024*1792', '1792*1024'],
        'max_size' => '1280*720',
        'timeout' => 60,
        'max_retries' => 3,
    ],

    // 图片配置
    'default_size' => '1024*1024',
    'response_format' => 'url',
    'style_preferences' => [
        'school_poster' => [
            'description' => '学校海报风格：简洁现代，适合教育场景',
            'prompt_template' => '生成一张适合学校海报的图片，要求：\n1. 风格：简洁现代，适合教育场景\n2. 色彩：温暖明亮\n3. 人物：以老年人为主，展现积极向上的精神面貌\n4. 布局：清晰有层次，适合做封面使用\n5. 元素：包含与教育相关的元素\n',
            'default' => true
        ]
    ],
    'quality' => 'standard',
    
    // 上传配置
    'upload_path' => 'uploads/ai_images/',
    'max_file_size' => 10 * 1024 * 1024, // 10MB
    'allowed_extensions' => ['png', 'jpg', 'jpeg', 'webp'],

    // 文本生成配置
    'text' => [
        'max_tokens' => 2000,
        'temperature' => 0.7,
        'top_p' => 0.8,
        'frequency_penalty' => 0,
        'presence_penalty' => 0,
    ],
    
    // API配置
    'timeout' => 60, // API请求超时时间（秒）
    'max_retries' => 3, // 最大重试次数
    'retry_delay' => 2, // 重试延迟（秒）
    
    // 默认提示词模板
    'default_prompts' => [
        'class_cover' => '为这个班级生成一张有创意的封面图片，风格清新简约，色彩明亮，体现教育氛围，适合老年人',
        'course_cover' => '为这个课程生成一张专业的封面图片，体现学习氛围，适合老年人',
        'school_banner' => '为学校生成一张宣传横幅图片，展现教育理念，适合老年人',
        'activity_poster' => '为活动生成一张吸引人的海报图片，色彩鲜明，适合老年人'
    ],
    
    // 风格配置
    'styles' => [
        'default' => [
            'name' => '默认',
            'prompt_suffix' => ', 高质量, 4K分辨率'
        ],
        'school_poster' => [
            'name' => '学校海报',
            'prompt_suffix' => ', 学校海报风格, 清新简约, 色彩明亮, 适合老年人, 体现教育氛围, 高质量'
        ],
        'modern' => [
            'name' => '现代风格',
            'prompt_suffix' => ', 现代风格, 简洁设计, 极简主义, 高质量, 4K分辨率'
        ],
        'cartoon' => [
            'name' => '卡通风格', 
            'prompt_suffix' => ', 卡通风格, 色彩丰富, 友好可爱, 高质量, 4K分辨率'
        ],
        'realistic' => [
            'name' => '写实风格',
            'prompt_suffix' => ', 写实风格, 高质量, 细节丰富, 4K分辨率'
        ],
        'artistic' => [
            'name' => '艺术风格',
            'prompt_suffix' => ', 艺术风格, 创意表现, 富有表现力, 高质量, 4K分辨率'
        ],
        'professional' => [
            'name' => '专业风格',
            'prompt_suffix' => ', 专业风格, 商务感, 简洁, 高质量, 4K分辨率'
        ],
        'educational' => [
            'name' => '教育主题',
            'prompt_suffix' => ', 教育主题, 学习氛围, 启发性, 高质量, 4K分辨率'
        ]
    ],
    
    // 缓存配置
    'cache_enabled' => true,
    'cache_expire' => 3600 * 24 * 7, // 缓存7天
    
    // 日志配置
    'log_enabled' => true,
    'log_level' => 'info', // debug, info, warning, error
    
    // 安全配置
    'rate_limit' => [
        'enabled' => true,
        'max_requests' => 10, // 每小时最大请求数
        'time_window' => 3600 // 时间窗口（秒）
    ],
    
    // 百度地图API配置
    'baidu_map' => [
        // API密钥配置
        'api_key' => getenv('BAIDU_MAP_KEY') ?: 'HX3XrjGHigjidfWYSf6bozZbiABeWfUX', // 百度地图API密钥 浏览器端
        'api_key_server' => getenv('BAIDU_MAP_KEY_SERVER') ?: 'aBIfRNb8MimBirL5RrjJn1WKDGs0jVQE', // 百度地图API密钥 服务端

        // 基本配置
        'enabled' => true,
        'timeout' => 30,
        'max_radius' => 2000, // 最大搜索半径（米）
        'max_results' => 10, // 最大返回结果数

        // API接口地址配置
        'api_urls' => [
            'reverse_geocoding' => 'https://api.map.baidu.com/reverse_geocoding/v3/', // 逆地理编码API（根据经纬度获取地址）
            'geocoding' => 'https://api.map.baidu.com/geocoding/v3/', // 地理编码API（根据地址获取经纬度）
            'place_search' => 'https://api.map.baidu.com/place/v2/search', // 地点检索API
            'direction' => 'https://api.map.baidu.com/direction/v2/riding', // 路线规划API
        ],

        // 默认请求参数
        'default_params' => [
            'output' => 'json',
            'coordtype' => 'wgs84ll', // 坐标类型：wgs84ll（GPS坐标）
            'extensions_poi' => 1,    // 是否显示指定位置周边的poi
            'extensions_road' => true, // 是否显示道路信息
            'extensions_town' => true, // 是否显示行政区划信息
        ],

        // 请求配置
        'request_config' => [
            'timeout' => 10,          // 请求超时时间（秒）
            'user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
            'ssl_verify' => false,    // 是否验证SSL证书
        ],

        // 缓存配置
        'cache' => [
            'enable' => true,         // 是否启用缓存
            'expire' => 3600,         // 缓存过期时间（秒）
            'prefix' => 'baidu_map_', // 缓存键前缀
        ],

        // 限流配置
        'rate_limit' => [
            'enable' => true,         // 是否启用限流
            'delay' => 100000,        // 请求间隔（微秒，100000 = 0.1秒）
            'max_requests_per_second' => 10, // 每秒最大请求数
        ],

        // POI类型映射（保留原有的数组格式，同时添加新的映射格式）
        'poi_types' => [
            '美食' => ['餐饮服务', '中餐厅', '西餐厅', '快餐厅', '咖啡厅', '茶餐厅'],
            '生活服务' => ['购物', '超市', '便利店', '药店', '洗衣店', '理发店'],
            '银行' => ['银行', 'ATM', '金融'],
            '医院' => ['医院', '诊所', '药店', '医疗'],
            '交通' => ['公交站', '地铁站', '停车场']
        ],

        // POI类型标准映射
        'poi_type_mapping' => [
            '美食' => 'restaurant',
            '酒店' => 'hotel',
            '购物' => 'shopping',
            '生活服务' => 'life_service',
            '丽人' => 'beauty',
            '旅游景点' => 'tourist_attraction',
            '休闲娱乐' => 'entertainment',
            '运动健身' => 'sports',
            '教育培训' => 'education',
            '文化传媒' => 'culture',
            '医疗' => 'medical',
            '汽车服务' => 'automotive',
            '交通设施' => 'transportation',
            '金融' => 'finance',
            '房地产' => 'real_estate',
            '公司企业' => 'company',
            '政府机构' => 'government',
        ],

        // 地址格式化配置
        'address_format' => [
            'include_country' => false,   // 是否包含国家信息
            'include_province' => true,   // 是否包含省份信息
            'include_city' => true,       // 是否包含城市信息
            'include_district' => true,   // 是否包含区县信息
            'include_street' => true,     // 是否包含街道信息
            'include_poi' => true,        // 是否包含POI信息
            'max_poi_count' => 5,         // 最大POI数量
            'max_road_count' => 3,        // 最大道路数量
        ],

        // 错误码映射
        'error_codes' => [
            0 => '正常',
            1 => '服务器内部错误',
            2 => '请求参数非法',
            3 => '权限校验失败',
            4 => '配额校验失败',
            5 => 'ak不存在或者非法',
            101 => '服务禁用',
            102 => '不通过白名单或者安全码不对',
            200 => '无权限',
            300 => '配额错误',
        ],

        // 日志配置
        'log' => [
            'enable' => true,             // 是否启用日志
            'level' => 'info',            // 日志级别
            'file' => 'baidu_map.log',    // 日志文件名
            'max_size' => '10MB',         // 最大日志文件大小
        ],
    ],

    // 备用API配置（可扩展其他AI服务）
    'backup_apis' => [
        'stability_ai' => [
            'enabled' => false,
            'api_key' => getenv('AI_STABILITY_KEY') ?: '',
            'api_url' => 'https://api.stability.ai/v1/generation/stable-diffusion-xl-1024-v1-0/text-to-image'
        ],
        'midjourney' => [
            'enabled' => false,
            'api_key' => getenv('AI_MIDJOURNEY_KEY') ?: '',
            'api_url' => 'https://api.midjourney.com/v1/imagine'
        ]
    ]
];
